﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

using BreukTrainer.BreukModel;

namespace BreukTrainer.Controller
{
    public class MaakBreukenController
    {
        private BreukContainer breuken;

        public BreukContainer Breukcontainer
        {
            get
            {
                return breuken;
            }
            set
            {
                breuken = value;
            }
        }

        public MaakBreukenController(int ondergrens, int bovengrens)
        {
            Breukcontainer = new BreukContainerEenvoudig(ondergrens, bovengrens);
        }

        public MaakBreukenController():this(int.MinValue, int.MaxValue)
        {
            //als er geen onder -en bovengrenzen zijn meegegeven zijn er geen beperkingen
        }

        public void VoegBreukToe(Breuk breuk)
        {
            Breukcontainer.Add(breuk);
        }

        public void GenereerBreuken(int aantal, int ondergrens, int bovengrens)
        {
            for (int i = 0; i < aantal; i++)
            {
                Breuk breuk = Breuk.RandomBreuk(ondergrens, bovengrens);
                try
                {
                    VoegBreukToe(breuk);
                }
                catch (ArgumentOutOfRangeException ex)
                {
                    //als we de breuk niet kunnen toevoegen proberen we het opnieuw
                    i--;
                }
            }
        }
    }
}
